// // #include <stdbool.h>
// // #include<stdio.h>
// // #include<stdlib.h>
// // #define N 5
// // typedef int ELemType;
// // typedef struct LNode {
// //     ELemType date;
// //     struct LNode* next;
// // }LNode,*LinkList;
// //
// // void ListHeadInsert(LinkList* L) {
// //     ELemType x;
// //     LNode* s;
// //     if (*L == NULL) {
// //         *L = (LNode*)malloc(sizeof(LNode)); // 创建头节点
// //         (*L)->next = NULL;
// //     }
// //     scanf("%d", &x);
// //     while (x != 9999) {
// //         s = (LNode*)malloc(sizeof(LNode));
// //         s->date = x;
// //         s->next = (*L)->next;
// //         (*L)->next = s;
// //         scanf("%d", &x);
// //     }
// // }
// // void ListTailInsert(LNode **L) {
// //     LNode *tail,*newNode;
// //     ELemType x;
// //
// //     (*L)=(LNode*)malloc(sizeof(LNode));
// //     (*L)->next=NULL;
// //     tail=*L;
// //
// //     scanf("%d",&x);
// //     while (x!=9999) {
// //         newNode=(LNode*)malloc(sizeof(LNode));
// //         newNode->date=x;
// //         tail->next=newNode;
// //         tail=newNode;
// //         scanf("%d",&x);
// //     }
// // }
// //
// // void PrintList(LNode* L) {
// //     LNode* p = L->next; // 从头节点的下一个节点开始打印
// //     while (p != NULL) {
// //         printf("%d ", p->date);
// //         p = p->next;
// //     }
// //     printf("\n");
// // }
// //
// // void FreeList(LNode* L) {
// //     LNode*cur=L;
// //     LNode*next=NULL;
// //     while (cur!=NULL) {
// //         next=cur->next;
// //         free(cur);
// //         cur=next;
// //     }
// // }
// // LNode*GetElem(LNode* LL,ELemType searchPos) {
// //     int i=0;
// //     LNode* p=LL->next;
// //     if(searchPos<1) {
// //         return NULL;
// //     }
// //     while (p!=NULL&&i<searchPos) {
// //         p=p->next;
// //         i++;
// //     }
// //     return p;
// // }
// // LNode* LocateElem(LNode* L,ELemType x) {
// //     LNode* p=L;
// //     while (p) {
// //         if (p->date==x) {
// //             return p;
// //         }
// //         p=p->next;
// //     }
// //     return NULL;
// // }
// // bool ListDelete(LNode** L, int i) {
// //     LinkList p = GetElem(*L, i - 1);//拿到要删除结点的前一个结点的地址
// //     if (p == NULL)
// //     {
// //         return false;
// //     }
// //     LinkList q = p->next;//拿到要删除结点的地址
// //     p->next = q->next;//断链
// //     free(q);
// //     return true;
// //
// // }
// // bool ListFrontInsert(LNode**L, int i, ELemType InsertValue)
// // {
// //     LNode* p=GetElem(*L,i-1);
// //     if(p==NULL) {
// //         return false;
// //     }
// //     LNode*q=(LNode*)malloc(sizeof(LNode));
// //     q->date=InsertValue;
// //     q->next=p->next;
// //     p->next=q;
// //     return true;
// // }
// //
// // int main() {
// //     LNode* L = NULL; // 初始化链表头指针为NULL
// //     // ListHeadInsert(&L); // 传递地址以便修改main中的L
// //     // PrintList(L); // 打印链表
// //     // FreeList(L);
// //
// //     ListTailInsert(&L);
// //     PrintList(L); // 打印链表
// //     // LNode* search=GetElem(L,2);//按位置查找
// //     // if (search!=NULL) {
// //     //     printf("找到位置为2的元素\n");
// //     //     printf("%d",search->date);
// //     // }
// //     // bool a=ListDelete(&L,2);
// //     // if (a) {
// //     //     printf("成功找到");
// //     // }
// //
// //     //按值查找
// //     // LNode* search=LocateElem(L,3);
// //     // if(search) {
// //     //     printf("找到了，是%d",search->date);
// //     // }else {
// //     //     printf("没找到\n");
// //     // }
// //     //插入某个元素
// //     int i=2;
// //     ListFrontInsert(&L,3,i);//在第3个位置插入i
// //     PrintList(L); // 打印链表
// //     FreeList(L);
// //     // 释放链表内存（省略）
// //     return 0;
// // }
// #include<stdio.h>
// #include<stdlib.h>
// #include<math.h>
// #include<assert.h>
// #include<string.h>
// #include<time.h>
// #include<ctype.h>
// #include<stdbool.h>
// int main() {
//     char arr[100];
//     gets(arr);
//     int len=strlen(arr);
//     for (int i = 0; arr[i]!='\0'; ++i) {
//         if(arr[i]=='z') {
//             arr[i]='a';
//         }else if (arr[i]>'a'&&arr[i]<'z'){
//             arr[i]=arr[i]+1;
//         }
//     }
//     printf("%s",arr);
//     return 0;
// }
// int dfs(int x) {
//     if (x==1||x==0)return 1;
//     if (x==2)return 2;
//     if(x<0)return 0;
//     int a=dfs(x-1);
//     int b=dfs(x-2);
//     int c=dfs(x-3);
//     return a+b+c;
// }
// #include<stdio.h>
// int main() {
//     int x=0;
//     scanf("%d",&x);
//
//     int i=dfs(x);
//     printf("%d",i);
//     return 0;
// }
#include <stdio.h>
#include <string.h>

int main()
{
    // 定义一个字符串数组，并初始化
    char arr[] = "High-Earphone@qq.com.666@.gaoerji";
    // 定义分隔符字符串
    char* sep = "@.";
    // 定义一个指向字符串的指针，用于存储每次分割得到的子字符串
    char* str = NULL;

    // 使用 strtok 函数进行字符串分割，每次调用都会返回被分割出的部分
    for (str = strtok(arr, sep); str != NULL; str = strtok(NULL, sep))
    {
        // 输出每次分割得到的子字符串
        printf("%s\n", str);
    }
    return 0;
}